package com.org.gsc.chartdemo;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.github.mikephil.charting.highlight.Highlight;
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;

import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements OnChartValueSelectedListener {
    LineChart lc;
    private List<Entry> yvals=new ArrayList<>();
    private List<Entry>y2=new ArrayList<>();
    private LineDataSet mdatas=new LineDataSet(yvals,"1");
    private LineDataSet mdatas1=new LineDataSet(y2,"2");
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.out.println("-------"+getWindow().toString());
//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
//                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        initView();

    }
    /**
     * 初始化控件
     */
    private void initView() {

        lc= (LineChart) findViewById(R.id.lc);
        initData1();
        initData2();
        lc.setData(new LineData(mdatas,mdatas1));//数据源多少条线就有多少个数据源
    }

    /**
     * 设置第二条线
     */
    private void initData2() {
        //做动画
        lc.animateX(3000);
        lc.animateY(3000);
        MyMarkerView mv = new MyMarkerView(this, R.layout.custom_marker_view);
        mv.setChartView(lc); // For bounds control
        lc.setMarker(mv); // Set the marker to the chart
        //设置点击选中的监听
        lc.setOnChartValueSelectedListener(this);

        //  lc.getXAxis().setEnabled(false);// x 轴不显示
        lc.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//设置坐标轴显示位置
        lc.getXAxis().setDrawGridLines(false);//去掉与Y轴平行的线
        lc.getXAxis().setTextColor(Color.GRAY);//设置X 轴字体颜色和大小
        lc.getXAxis().setTextSize(20);
        lc.getAxisLeft().setTextColor(Color.GREEN);//设置Y轴字体颜色和大小
        lc.getAxisLeft().setTextSize(30);
        lc.getXAxis().setSpaceMax(4);//设置X 轴的标签的距离
        lc.getAxisLeft().setLabelCount(4,false);//设置Y轴标签个数
        lc.getAxisLeft().setDrawGridLines(false);//去掉X轴平行的线
        lc.getAxisLeft().setAxisLineColor(Color.GREEN);//设置Y轴颜色
        lc.getDescription().setEnabled(false);//去掉描述文字
        //设置X 轴限制线
        LimitLine x=new LimitLine(3,"2");
        x.setTextColor(Color.GREEN);
        x.setTextSize(20);
        x.setLineWidth(30);
        x.setLineColor(Color.BLACK);
        lc.getXAxis().addLimitLine(x);
        //设置Y轴的限制线
        LimitLine y=new LimitLine(2,"2y");
        // lc.getAxisLeft().enableGridDashedLine(10f, 10f, 0f);
        y.enableDashedLine(10f, 10f, 0f);// 设置分割线为虚线
        y.setLineWidth(10);
        y.setTextSize(40);
        y.setLineColor(Color.GREEN);
        y.setTextColor(Color.BLACK);
        lc.getAxisLeft().addLimitLine(y);
        //lc.getXAxis().setEnabled(false);//不显示X轴
        lc.getAxisRight().setEnabled(false); //右y  轴 不显示
        // lc.setDrawGridBackground(false);
        // lc.getAxisLeft().setEnabled(false);// 左边y轴不显示

        // lc.getXAxis().setDrawGridLines(true);
        lc.getXAxis().setDrawLimitLinesBehindData(true);
        lc.getXAxis().setAxisLineColor(Color.RED);

//        lc.getAxisLeft().setGridColor(Color.GRAY);
        //lc.getAxisRight().setDrawGridLines(false);
        // lc.getAxisRight().setDrawGridLines(false);
        for(int i=0;i<20;i++){

            y2.add(new Entry(i, (float) (0.3*i)));

        }
        mdatas1 = new LineDataSet(y2, "2");//添加坐标点和标签
       // ? LineDataSet.Mode.LINEAR
       // :  LineDataSet.Mode.CUBIC_BEZIER
        mdatas1.setMode(LineDataSet.Mode.STEPPED
               );//设置线的模式及样式
        mdatas1.setValueTextColor(Color.YELLOW);


        mdatas1.setDrawFilled(true);//设置填充颜色是否显示
        mdatas1.setDrawHighlightIndicators(true);//设置高亮指示器不显示默认不显示

        // mdatas.setHighlightEnabled(true);
//下面两句设置虚线
        mdatas1.enableDashedLine(10f, 5f, 0f);
        mdatas1.enableDashedHighlightLine(10f, 5f, 0f);
        mdatas1.setValueTextSize(12f);
        mdatas1.setColor(Color.BLACK);//设置线的颜色
        //  mdatas.setDrawCircles(false);//设置不花圈点下句加上也无效
        mdatas1.setCircleColor(Color.WHITE);//设置点的颜色
        mdatas1.setCircleSize(5);//设置点的大小
        mdatas1.setFillColor(Color.BLACK);//设置填充区域
    }

    private void initData1() {
        //做动画
        lc.animateX(3000);
        lc.animateY(3000);
        MyMarkerView mv = new MyMarkerView(this, R.layout.custom_marker_view);
        mv.setChartView(lc); // For bounds control
        lc.setMarker(mv); // Set the marker to the chart
        //设置点击选中的监听
        lc.setOnChartValueSelectedListener(this);

        //  lc.getXAxis().setEnabled(false);// x 轴不显示
        lc.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//设置坐标轴显示位置
        lc.getXAxis().setDrawGridLines(false);//去掉与Y轴平行的线
        lc.getXAxis().setTextColor(Color.GRAY);//设置X 轴字体颜色和大小
        lc.getXAxis().setTextSize(20);
        lc.getAxisLeft().setTextColor(Color.GREEN);//设置Y轴字体颜色和大小
        lc.getAxisLeft().setTextSize(30);
        lc.getXAxis().setSpaceMax(4);//设置X 轴的标签的距离
        lc.getAxisLeft().setLabelCount(4,false);//设置Y轴标签个数
        lc.getAxisLeft().setDrawGridLines(false);//去掉X轴平行的线
        lc.getAxisLeft().setAxisLineColor(Color.GREEN);//设置Y轴颜色
        lc.getDescription().setEnabled(false);//去掉描述文字
        //设置X 轴限制线
        LimitLine x=new LimitLine(2,"aaa");
        x.setTextColor(Color.GREEN);
        x.setTextSize(20);
        x.setLineWidth(30);
        x.setLineColor(Color.BLACK);
        lc.getXAxis().addLimitLine(x);
        //设置Y轴的限制线
        LimitLine y=new LimitLine(1,"YYY");
        // lc.getAxisLeft().enableGridDashedLine(10f, 10f, 0f);
        y.enableDashedLine(10f, 10f, 0f);// 设置分割线为虚线
        y.setLineWidth(10);
        y.setTextSize(40);
        y.setLineColor(Color.GREEN);
        y.setTextColor(Color.BLACK);
        lc.getAxisLeft().addLimitLine(y);
        //lc.getXAxis().setEnabled(false);//不显示X轴
        lc.getAxisRight().setEnabled(false); //右y  轴 不显示
        // lc.setDrawGridBackground(false);
        // lc.getAxisLeft().setEnabled(false);// 左边y轴不显示

        // lc.getXAxis().setDrawGridLines(true);
        lc.getXAxis().setDrawLimitLinesBehindData(true);
        lc.getXAxis().setAxisLineColor(Color.RED);

//        lc.getAxisLeft().setGridColor(Color.GRAY);
        //lc.getAxisRight().setDrawGridLines(false);
        // lc.getAxisRight().setDrawGridLines(false);
        for(int i=0;i<20;i++){

            yvals.add(new Entry(i, (float) (0.1*i)));

        }
        mdatas = new LineDataSet(yvals, "1");//添加坐标点和标签

        mdatas.setValueTextColor(Color.RED);


        mdatas.setDrawFilled(true);//设置填充颜色是否显示
        mdatas.setDrawHighlightIndicators(true);//设置高亮指示器不显示默认不显示

        // mdatas.setHighlightEnabled(true);
//下面两句设置虚线
        mdatas.enableDashedLine(10f, 5f, 0f);
        mdatas.enableDashedHighlightLine(10f, 5f, 0f);
        mdatas.setValueTextSize(12f);
        mdatas.setColor(Color.YELLOW);//设置线的颜色
        //  mdatas.setDrawCircles(false);//设置不花圈点下句加上也无效
        mdatas.setCircleColor(Color.GREEN);//设置点的颜色
        mdatas.setCircleSize(5);//设置点的大小
        mdatas.setFillColor(Color.YELLOW);//设置填充区域
//        mdatas.setAxisDependency(YAxis.AxisDependency.RIGHT);
    }

    /**
     * @param e The selected Entry
     * @param h The corresponding highlight object that contains information
     *          点选中的回调
     */
    @Override
    public void onValueSelected(Entry e, Highlight h) {

    }

    /**
     * 点没有选中的回调
     */
    @Override
    public void onNothingSelected() {

    }
}
